diff --git a/system/libraries/Session/Session.php b/system/libraries/Session/Session.php
index 1195ed9..1f24456 100755
--- a/system/libraries/Session/Session.php
+++ b/system/libraries/Session/Session.php
@@ -42,7 +42,6 @@
 	public $params = array();
 	protected $current = null;
 	protected $userdata = array();
-	protected $loaded = array();
 
 	const FLASHDATA_KEY = 'flash';
 	const FLASHDATA_NEW = ':new:';
@@ -113,22 +112,6 @@
 	}
 
 	/**
-	 * CI_Session destructor
-	 *
-	 * The destructor calls shutdown() on each loaded driver
-	 */
-	public function __destruct()
-	{
-		// Call shutdown for each loaded driver
-		foreach ($this->loaded as $driver)
-		{
-			$this->$driver->shutdown();
-		}
-
-		log_message('debug', 'CI_Session Class Shutdown');
-	}
-
-	/**
 	 * Loads session storage driver
 	 *
 	 * @param	string	Driver classname
@@ -139,14 +122,6 @@
 		// Save reference to most recently loaded driver as library default and sync userdata
 		$this->current = parent::load_driver($driver);
 		$this->userdata =& $this->current->get_userdata();
-
-		// Mark driver as loaded
-		if (!in_array($driver, $this->loaded))
-		{
-			$this->loaded[] = $driver;
-		}
-
-		// Return driver object
 		return $this->current;
 	}
 
@@ -607,16 +582,6 @@
 	}
 
 	/**
-	 * Shut down driver
-	 *
-	 * @return	void
-	 */
-	public function shutdown()
-	{
-		// Overload this method to implement shutdown
-	}
-
-	/**
 	 * Save the session data
 	 *
 	 * Data in the array has changed - perform any storage synchronization necessary
diff --git a/system/libraries/Session/drivers/Session_cookie.php b/system/libraries/Session/drivers/Session_cookie.php
index df3282c..69e5fde 100755
--- a/system/libraries/Session/drivers/Session_cookie.php
+++ b/system/libraries/Session/drivers/Session_cookie.php
@@ -176,10 +176,10 @@
 	 * @var	array
 	 */
 	protected $defaults = array(
-		'session_id',
-		'ip_address',
-		'user_agent',
-		'last_activity'
+		'session_id' => NULL,
+		'ip_address' => NULL,
+		'user_agent' => NULL,
+		'last_activity' => NULL
 	);
 
 	/**
@@ -281,17 +281,6 @@
 	}
 
 	/**
-	 * Shutdown session driver object
-	 *
-	 * @return	void
-	 */
-	public function shutdown()
-	{
-		// Just update the DB
-		$this->_update_db();
-	}
-
-	/**
 	 * Write the session data
 	 *
 	 * @return	void
@@ -299,7 +288,7 @@
 	public function sess_save()
 	{
 		// Check for database
-		if ($this->sess_use_database === FALSE)
+		if ($this->sess_use_database === TRUE)
 		{
 			// Mark custom data as dirty so we know to update the DB
 			$this->data_dirty = TRUE;
